package com.feng.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.feng.entity.Account;
import com.feng.entity.RestResponse;
import com.feng.entity.vo.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

public interface AccountService extends IService<Account>, UserDetailsService {

    RestResponse register(AccountRegisterVo registerVo);
    RestResponse sendEmail(String username, HttpServletRequest request);

    RestResponse forgotCode(String username, HttpServletRequest request);

    RestResponse forgot(AccountForgotVo forgotVo);

    RestResponse changePassword(AccountForgotVo forgotVo);

    RestResponse getAccountAvatar();

    RestResponse getAccountAndArticleById(String id);

    RestResponse getList(AccountListVo accountList);

    RestResponse updateAccountStatus(UpdateStatusReqVo updateStatus);

    RestResponse addAccount(AccountAddVo accountAdd);

    RestResponse getAccountById(String id);

    RestResponse updateAccount(AccountAddVo accountAdd);

    RestResponse delAccount(String id);

    RestResponse delBatchAccount(List<String> ids);

    void export(HttpServletResponse response);

    RestResponse getUserInfo();

    RestResponse updateAccountOneself(UserInfoUpdateVo userInfo);
}
